import { http } from "@/common/service/service.js";

const productionTask = {
  // 获取可领取任务
  getAvailableTasks(params) {
    return http.get("/mes/task/available", { params });
  },

  // 获取我的任务 - 使用正确的后端endpoint
  getMyTasks(params) {
    return http.get("/mes/task/my-tasks", {
      params: {
        ...params,
        claimedEmployeeId: params.employeeId, // 使用正确的参数名
      },
    });
  },

  // 获取历史任务 - 使用正确的后端endpoint
  getHistoryTasks(params) {
    return http.get("/mes/task/history", {
      params: {
        ...params,
        status: 3, // 已完成状态
        claimedEmployeeId: params.employeeId,
      },
    });
  },

  // 获取所有任务（用于任务列表页面）
  getAllTasks(params) {
    return http.get("/mes/task/list", { params });
  },

  // 领取任务
  claimTask(params) {
    return http.post("/mes/task/claim", params);
  },

  // 提交任务（原开始任务）
  submitTask(params) {
    return http.post("/mes/task/submit", params);
  },

  // 暂停任务
  pauseTask(taskId) {
    return http.post("/mes/task/pause", { taskId });
  },

  // 恢复任务
  resumeTask(taskId) {
    return http.post("/mes/task/resume", { taskId });
  },

  // 完成任务
  completeTask(data) {
    return request({
      url: "/mes/mesProductionPlanTask/complete",
      method: "POST",
      data,
    });
  },

  // 批量领取任务
  batchClaimTasks(taskIds) {
    return http.post("/mes/task/batch/claim", { taskIds });
  },

  // 批量开始任务
  batchStartTasks(taskIds) {
    return http.post("/mes/task/batch/start", { taskIds });
  },

  // 批量暂停任务
  batchPauseTasks(taskIds) {
    return http.post("/mes/task/batch/pause", { taskIds });
  },

  // 批量完成任务
  batchCompleteTask(data) {
    return http.post("/mes/task/batch-complete", data);
  },

  // 获取任务详情
  getTaskDetail(taskId) {
    return http.get(`/mes/task/detail/${taskId}`);
  },

  // 获取任务统计
  getTaskStats(params) {
    return http.get("/mes/task/stats", { params });
  },

  // 获取工种分组
  getWorktypeGroups(params) {
    return http.get("/mes/worktype/groups", { params });
  },

  // 撤回任务
  withdrawTasks(data) {
    return http.post("/mes/task/withdraw", data);
  },
};

export default productionTask;
